package MTT::Controller::Root;
use Moose;
use namespace::autoclean;

BEGIN { extends 'Catalyst::Controller' }

#
# Sets the actions in this controller to be registered with no prefix
# so they function identically to actions created in MyApp.pm
#
__PACKAGE__->config(namespace => '');

=head1 NAME

MTT::Controller::Root - Root Controller for MTT

=head1 DESCRIPTION

[enter your description here]

=head1 METHODS

=head2 index

The root page (/)

=cut
use Log::Log4perl;


use Data::Dumper;
use Digest::MD5 q(md5_hex);
use MTT::Libs::Menu;
use MTT::Libs::Report;

sub index :Path :Args(0) {
    my ( $self, $c ) = @_;

    # Hello World

	$c->stash(
		template => 'index.tt2',
		templates => $c->controller('Templates')->get_templates($c, $c->user->id, 10)
	);
}

sub access_error: Path('/access_denied') {
	my ($self, $c) = @_;

	$c->response->body('Access denied');
}


sub auto: Private {
	my ($self, $c) = @_;

	Log::Log4perl::MDC->put('ip' => $c->req->address);
	Log::Log4perl::MDC->put('login' => 'unauthorized');

	if ( $c->controller == $c->controller('Login') ) {
		return 1;
	}

	unless ( $c->user_exists ) {
		if ( $c->req->path ) {
			$c->response->cookies->{backurl} = {value => $c->req->uri->path_query}; #path_query};
		}
		$c->response->redirect( $c->uri_for('/login') );
		return 0;
	}

	Log::Log4perl::MDC->put('login' => $c->user->username);

	$c->stash(
		menu => MTT::Libs::Menu->instance->get_menu($c)
	);
#warn Dumper( $c->stash->{menu} );	

	return 1;
}

=head2 default

Standard 404 error page

=cut

sub default :Path {
    my ( $self, $c ) = @_;
    $c->response->body( 'Page not found' );
    $c->response->status(404);
}

=head2 end

Attempt to render a view, if needed.

=cut

sub end : ActionClass('RenderView') {}

=head1 AUTHOR

Catalyst developer

=head1 LICENSE

This library is free software. You can redistribute it and/or modify
it under the same terms as Perl itself.

=cut

__PACKAGE__->meta->make_immutable;

1;
